#pragma once

struct WakeDrop {
	float3 pos;
	float offset;
};

struct WakeBufInfo
{
	float	*d_ptr;
	int		size;
	size_t	pitch;
};

extern "C" 
void cudaGenerateSpectrumKernel(float2* d_h0, float2 *d_ht, unsigned int width, unsigned int height, float animTime, float dk );

extern "C"
void cudaAddWakeDropsKernel( int drop_n, const WakeDrop* d_drops, const WakeBufInfo & buf, float grid_step);

extern "C"
void cudaSimualteWakeKernel( float grid_step, const WakeBufInfo *bufs, int cur_buf);

//extern "C"
//void cudaAddWakeToWave( const WakeBufInfo *bufs, int cur_buf, float2 *d_dst);


